package model

import (
	"jgt-oper/src/schema"
)

// IUser 用户管理
type IUser interface {
	// 查询分页数据
	QueryPage(params schema.UserQueryParam, pageIndex, pageSize uint) (int64, []*schema.User, error)
	// 查询选择数据
	QuerySelect(params schema.UserQueryParam) ([]*schema.User, error)
	// 查询数据条数
	Count(params schema.UserQueryParam) (int64, error)
	// 创建用户
	Create(item *schema.User) error
	// 更新用户信息
	Update(recordID string, info map[string]interface{}) error
	// 获取用户信息
	Get(recordID string) (*schema.User, error)
	// 检查用户昵称
	CheckNickname(nickname string) (bool, error)
	// 查询常用功能
	QueryCommonFunction(userID string) ([]string, error)
	// 保存常用功能
	SaveCommonFunction(userID string, items []string) error
	// 创建登录历史
	CreateLoginHistory(item *schema.LoginHistory) error
	// 保存用户设置
	SaveSetting(setting *schema.UserSetting) error
	// 获取用户设置
	GetSetting(userID string) (*schema.UserSetting, error)
	// 模糊查询分页
	Search(search string, count int) ([]*schema.User, error)
}
